home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Compute! Gazette: SID64
/
SID64.D64
/
basic player.64
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-09-20
|
1KB
|
27 lines
100 print chr$(147):print " sidplayer basic player"
105 print " by craig chamberlain":print
120 dn=8:sa=780:sx=781:sy=782:sp=783
130 print " tuning instruments...":print:gosub 57000:rem load sidplayer ml
200 f$="commodore":la=peek(49)+256*peek(50)+1000:gosub 57500:rem load song
210 sys hk:rem hook (install)
220 poke sx,lo:poke sy,hi:sys pl:rem set for playing
230 k=peek(sx)+256*peek(sy):rem get address of text lines
240 if peek(k) then print chr$(peek(k));:k=k+1:goto 240:rem print until chr$(0)
250 poke ss,7:rem start playing music
260 if peek(ss)and7 goto 260:rem still playing
270 sys hu:rem hush
280 sys dp:rem drop (remove)
290 end
57000 poke sa,1:poke sx,dn:poke sy,1:sys 65466:f$="sid.obj.64":gosub 59000
57010 poke sa,0:sys 65493:if peek(sp)and1 goto 59100
57020 ss=49152:fl=49153:hk=49615:pl=49664:hu=49897:dp=49935:return
57500 poke sa,1:poke sx,dn:poke sy,0:sys 65466:f$=f$+".mus":gosub 59000
57510 hi=int(la/256):lo=la-256*hi
57520 poke sa,0:poke sx,lo:poke sy,hi:sys 65493:if peek(sp)and1 goto 59100
57530 la=peek(sx)+256*peek(sy):return
59000 for k=1 to len(f$):poke 584+k,asc(mid$(f$,k)):next
59010 poke sa,len(f$):poke sx,73:poke sy,2:sys 65469:return
59100 p=peek(sa):print " error: ";:if p=4 then print "file not found":end
59110 if p=5 then print "device not present":end
59120 print st:end